// 配置axios基地址 
axios.defaults.baseURL = 'https://hmajax.itheima.net'


// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前,统一设置token
    const token = localStorage.getItem('token')
    if (token) {
        config.headers.Authorization = token
    }
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});


// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    // 数据分离
    return response.data;
}, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    console.log(error)
    // 统一处理token
    if (error.response.status === 401) {
        logout('登录已过期，请重新登录')
    }
    return Promise.reject(error);
});


// axios 别名请求方式
// axios.get('/api/province').then(res => {
//     console.log(res)
// })
// axios.get('/api/city', {
//     params: {
//         pname: '河南省'
//     }
// }).then(res => {
//     console.log(res)
// })

// axios.post('/register', { username: 'adminadmin47312', password: '123456' })


// 封装轻提示函数
function showToast(message) {
    // 1. 实例化toast组件
    const toast = new bootstrap.Toast(document.querySelector('.toast'))
    // 2. 设置提示信息
    document.querySelector('.toast-body').innerHTML = message
    // 3. 显示组件
    toast.show()
}
// 测试轻提示函数
// showToast('测试轻提示')


// 封装校验函数
function checkLogin() {
    const token = localStorage.getItem('token')
    if (!token) {
        showToast('请先登录')
        setTimeout(() => {
            location.href = './login.html'
        }, 800)
    }
}

// 封装用户名显示函数
function showUsername() {
    const username = localStorage.getItem('username')
    document.querySelector('.navbar-nav .username').innerHTML = username
}


// 封装退出登录函数
function logout(msg) {
    localStorage.removeItem('token')
    localStorage.removeItem('username')
    showToast(msg)
    setTimeout(() => {
        location.href = './login.html'
    }, 800)
}